3 朴素Bayes法

1 朴素 Bayes 法的学习与分类

1.1 基本方法

延续上一章的假设,X⊂Rn,Y={c1,⋯,cK}. X∈X,Y∈Y. P(X,Y)是X,Y的联合概率分布,据此采样得到训练数据集T={(x1,y1),⋯,(xn,yn)}.
朴素Bayes法 是通过T学习P(X,Y)的方法. 它与 Bayes 估计是不同的概念. “朴素“的得名由来是因为它做出了条件独立性的假设.

联合分布P(X,Y)可以由先验分布

(1.1)P(Y=ck),1≤k≤K

和条件分布

(1.2)P(X=x|Y=ck)=P(X(i)=x(i),1≤i≤n|Y=ck)

得到. 朴素 Bayes 法给出了条件独立性的假设,也即 (2) 可以进一步假设

(1.3)P(X=x|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck).

这样,依据 Bayes定理 计算后验分布

P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)(代入(1.3))=P(Y=ck)∏jP(X(j)=x(j)|Y=ck)∑kP(Y=ck)∏jP(X(j)=x(j)|Y=ck)

于是朴素 Bayes 分类器为

y=f(x)=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)∑kP(Y=ck)∏jP(X(j)=x(j)|Y=ck).(1.4)=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck).

1.2 后验概率最大化的含义

下面我们说明: 朴素 Bayes 法将实例分到后验概率最大的类的做法,与期望风险最小化等价.

事实上,如果 0-1 损失函数

L(Y,f(X))={1,Y≠f(X),0,Y=f(X),

则它对应期望风险函数

Rexp=E[L(Y,f(X))]=EX∑k=1K[L(ck,f(X))]P(ck|X).

对X=x逐个极小化, 得

f(x)=argminy∈Y∑k=1KL(ck,y)P(ck|X=x)=argminy∈Y∑k=1KP(y≠ck|X=x)=argminy∈Y(1−P(y=ck|X=x))=argmaxy∈YP(y=ck|X=x).

这就是朴素 Bayes 方法.

2 朴素 Bayes 法的参数估计

2.1 极大似然估计

在朴素 Bayes 法中,我们要学习P(Y=ck),P(X(j)=x(j)|Y=ck). 可以用极大似然估计. 首先是先验概率P(Y=ck):

(2.1)P(Y=ck)=∑i=1NI(yi=ck)N,1≤k≤K.

(这个结论的推导在 这个例子中)
设第j个特征x(j)可能的取值的集合为{aj1,aj2,⋯,ajSj}, 则条件概率P(X(j)=ajl|Y=ck)的极大似然估计为

(2.2)P(X(j)=ajl|Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck),j=1,⋯,n;l=1,⋯,Sj;k=1,⋯,K.

2.2 学习与分类算法

朴素 Bayes 算法

输入 训练数据T, 实例x(T={(x1,y1),⋯,(xN,yN)}, 其中xi=(xi(1),⋯,xi(n))T, xi(j)是第i个样本的第j个特征, xi(j)∈{aj1,⋯,ajSj},1≤j≤n,1≤l≤Sj,yi∈{c1,⋯,cK})
输出 x的分类

  1. 计算先验概率和条件概率: (2.1) 和 (2.2).
  2. 对给定的x=(x(1),⋯,x(n))T, 计算P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck).
  3. 确定x的类y=arg⁡maxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck).

2.3 Bayes 估计

Bayes 估计用于规避概率值为 0 的情形. 具体地, 条件概率的 Bayes 估计为

(2.3)Pλ(X(j)=ajl|Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)+λ∑i=1NI(yi=ck)+Sjλ.

其中λ≥0. 当λ=0就是极大似然估计; λ=1称为Laplace 平滑. 显然对任意l=1,⋯,Sj,k=1,⋯,K有

Pλ(X(j)=ajl|Y=ck)>0,∑l=1SjP(X(j)=ajl|Y=ck)=1.

先验概率的 Bayes 估计为

(2.4)Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+Kλ,